机器学习只是扩展不是替代
与业外人士认为的相反,机器学习(ML)并非神奇的安全解药。一般来说,ML只适用于某特定问题,并有大量可用数据集,且具有高度可重复性或可预测性的问题。大多数安全问题既不需要ML也无法从ML中受益。许多安全专家,包括谷歌的顶级技术人员,均建议在解决复杂问题时,在尝试ML之前先尽量尝试其他的方法。
ML是一个广泛的统计技术集合,它允许我们训练计算机来预估一个问题的答案。一个设计良好的ML系统,可以“解锁”在通常情况下无法获得的洞察力,前提是要适用于特定的问题类型。
一个ML成功应用的例子是自然语言处理(NLP),它使得计算机能够“理解”人类语言,包括约定俗成的习语和隐含的喻义。网络安全则在许多方面与语言处理类似,如攻击者使用的许多技术名词都有着与本源大不相同的含义,像那些拼写或发音相同但含义不同的单词。并且,同样的技术既可用于攻击也可用于防御。
不同的机构,其IT环境在体系结构、业务优先级和风险容忍度等方面各不相同。试图建立一种可以解决所有场景中的安全算法是不可能的。ML在安全领域有几个应用较为成功的例子,都是针对一种非常具体的问题。如垃圾邮件过滤、抗D或反恶意爬虫及恶意软件检测等。
垃圾进,垃圾出
ML最大的挑战是需要一个庞大且有正确标记的数据集来进行训练。例如,要建立一个猫的图片识别模型,则需要许多标记正确的“猫”的照片和许多标有“非猫”的图片。如果没有足够的图片或是有不准确的标签,模型就无法达到理想的效果。
一个广为人知的ML监督学习的场景是恶意软件检测。很多EDR/EPP产品使用ML来标记大量的恶意样本和良性样本,以训练出识别恶意软件的模型。这些模型可以正确识别出许多想尽办法以规避签名检测的恶意软件。但我们知道,误报和漏报仍然存在。
ML可以发现那些签名无法捕获的恶意软件,但也可能会错过签名能够捕获的恶意程序。因此,现在的EDR/EPP等端点安全工具,普遍使用将ML和基于签名的技术相结合的方法,以实现最佳的检测效果。
误报的问题
即使ML的识别模型构造得很好,但在解释其检测结果时也并非易事。因为其输出的结果是一个概率,一个可能性。比如,“80%的猫(或恶意软件)”。这种不确定性是人工智能模型固有的,而且难以解释为什么是80%。但80%就可以了吗?
如果想要更高的概率,就需要不断的调优,但很少有用户能够做得到。为了将概率形成决策,就只能设定某个阈值,将大于某个数值(如90%)等同于“是”。但这显然会产生误报,如果判断的数量大于10万的话,即使是90%的正确率那也是1万的误报量。
漏报的问题
我们讨厌误报,因为它浪费大量的时间和精力。但我们可能更不喜欢漏报,因为它意味着丝毫没有感觉到威胁。所以,在误报和漏报之间存在一种平衡关系,而且这个平衡需要根据用户环境不断的进行调谐。因此,不同的用户不同的业务,其最佳平衡点是不同的。
结语
当恶意软件的特征明确并且足够收敛,机器学习的效率还是非常明显的。尤其是环境越稳定,机器学习对异常行为的识别就准确。而且,并非所有的异常行为都是恶意行为。综上所述,机器学习在安全领域并非有人想象的那样魔力无穷,只能是现有安全方法、系统和团队的能力扩展,而不是替代。